🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / feature / node / src / commonMain / kotlin / org / meshtastic / feature / node / metrics / PowerMetrics.kt
Displaying Raw • Download
feature/node/src/commonMain/kotlin/org/meshtastic/feature/node/metrics/PowerMetrics.kt 520fa717a938fd84682403b41f57d9f7e1ef49ef (520fa717) Text, 17.20 KB
T8b949e/*
* Copyright (c) 2025-2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tf0883e@fileTb4b4b4:Te6edf3SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Tf0883e@fileTb4b4b4:Te6edf3OptInTb4b4b4(Te6edf3ExperimentalMaterial3ExpressiveApiTff7b72::Te6edf3classTb4b4b4)
Tff7b72package T7ee787org.meshtastic.feature.node.metrics
Tff7b72import T7ee787androidx.compose.foundation.horizontalScroll
Tff7b72import T7ee787androidx.compose.foundation.layout.Arrangement
Tff7b72import T7ee787androidx.compose.foundation.layout.Column
Tff7b72import T7ee787androidx.compose.foundation.layout.Row
Tff7b72import T7ee787androidx.compose.foundation.layout.Spacer
Tff7b72import T7ee787androidx.compose.foundation.layout.fillMaxSize
Tff7b72import T7ee787androidx.compose.foundation.layout.fillMaxWidth
Tff7b72import T7ee787androidx.compose.foundation.layout.height
Tff7b72import T7ee787androidx.compose.foundation.layout.padding
Tff7b72import T7ee787androidx.compose.foundation.lazy.LazyColumn
Tff7b72import T7ee787androidx.compose.foundation.lazy.itemsIndexed
Tff7b72import T7ee787androidx.compose.foundation.rememberScrollState
Tff7b72import T7ee787androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
Tff7b72import T7ee787androidx.compose.material3.FilterChip
Tff7b72import T7ee787androidx.compose.material3.MaterialTheme
Tff7b72import T7ee787androidx.compose.material3.Text
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.LaunchedEffect
Tff7b72import T7ee787androidx.compose.runtime.getValue
Tff7b72import T7ee787androidx.compose.runtime.mutableStateOf
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.runtime.setValue
Tff7b72import T7ee787androidx.compose.ui.Modifier
Tff7b72import T7ee787androidx.compose.ui.graphics.Color
Tff7b72import T7ee787androidx.compose.ui.text.TextStyle
Tff7b72import T7ee787androidx.compose.ui.text.font.FontWeight
Tff7b72import T7ee787androidx.compose.ui.unit.dp
Tff7b72import T7ee787androidx.lifecycle.compose.collectAsStateWithLifecycle
Tff7b72import T7ee787com.patrykandpatrick.vico.compose.cartesian.VicoScrollState
Tff7b72import T7ee787com.patrykandpatrick.vico.compose.cartesian.axis.Axis
Tff7b72import T7ee787com.patrykandpatrick.vico.compose.cartesian.axis.VerticalAxis
Tff7b72import T7ee787com.patrykandpatrick.vico.compose.cartesian.data.lineSeries
Tff7b72import T7ee787com.patrykandpatrick.vico.compose.cartesian.layer.LineCartesianLayer
Tff7b72import T7ee787org.jetbrains.compose.resources.StringResource
Tff7b72import T7ee787org.jetbrains.compose.resources.stringResource
Tff7b72import T7ee787org.meshtastic.core.common.util.DateFormatter
Tff7b72import T7ee787org.meshtastic.core.common.util.formatString
Tff7b72import T7ee787org.meshtastic.core.model.TelemetryType
Tff7b72import T7ee787org.meshtastic.core.model.util.TimeConstants.MS_PER_SEC
Tff7b72import T7ee787org.meshtastic.core.resources.Res
Tff7b72import T7ee787org.meshtastic.core.resources.channel_1
Tff7b72import T7ee787org.meshtastic.core.resources.channel_2
Tff7b72import T7ee787org.meshtastic.core.resources.channel_3
Tff7b72import T7ee787org.meshtastic.core.resources.channel_4
Tff7b72import T7ee787org.meshtastic.core.resources.channel_5
Tff7b72import T7ee787org.meshtastic.core.resources.channel_6
Tff7b72import T7ee787org.meshtastic.core.resources.channel_7
Tff7b72import T7ee787org.meshtastic.core.resources.channel_8
Tff7b72import T7ee787org.meshtastic.core.resources.current
Tff7b72import T7ee787org.meshtastic.core.resources.power_metrics_log
Tff7b72import T7ee787org.meshtastic.core.resources.voltage
Tff7b72import T7ee787org.meshtastic.core.ui.theme.GraphColors.Gold
Tff7b72import T7ee787org.meshtastic.core.ui.theme.GraphColors.InfantryBlue
Tff7b72import T7ee787org.meshtastic.proto.Telemetry
Tff7b72private Tff7b72enum Tff7b72class T56d364PowerMetricTb4b4b4(Tff7b72val Te6edf3colorTb4b4b4: Te6edf3ColorTb4b4b4) Tb4b4b4{
Te6edf3CURRENTTb4b4b4(Te6edf3InfantryBlueTb4b4b4)Tb4b4b4,
Te6edf3VOLTAGETb4b4b4(Te6edf3GoldTb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72private Tff7b72enum Tff7b72class T56d364PowerChannelTb4b4b4(Tff7b72val Te6edf3strResTb4b4b4: Te6edf3StringResourceTb4b4b4) Tb4b4b4{
Te6edf3ONETb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_1Tb4b4b4)Tb4b4b4,
Te6edf3TWOTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_2Tb4b4b4)Tb4b4b4,
Te6edf3THREETb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_3Tb4b4b4)Tb4b4b4,
Te6edf3FOURTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_4Tb4b4b4)Tb4b4b4,
Te6edf3FIVETb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_5Tb4b4b4)Tb4b4b4,
Te6edf3SIXTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_6Tb4b4b4)Tb4b4b4,
Te6edf3SEVENTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_7Tb4b4b4)Tb4b4b4,
Te6edf3EIGHTTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_8Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72private Tff7b72val Te6edf3LEGEND_DATA Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3LegendDataTb4b4b4(Te6edf3nameRes Tff7b72= Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3currentTb4b4b4, Te6edf3color Tff7b72= Te6edf3PowerMetricTb4b4b4.Te6edf3CURRENTTb4b4b4.Te6edf3colorTb4b4b4, Te6edf3isLine Tff7b72= Tff7b72trueTb4b4b4)Tb4b4b4,
Te6edf3LegendDataTb4b4b4(Te6edf3nameRes Tff7b72= Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3voltageTb4b4b4, Te6edf3color Tff7b72= Te6edf3PowerMetricTb4b4b4.Te6edf3VOLTAGETb4b4b4.Te6edf3colorTb4b4b4, Te6edf3isLine Tff7b72= Tff7b72trueTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4)
Tf0883e@Composable
Tff7b72fun Td2a8ffPowerMetricsScreenTb4b4b4(Te6edf3viewModelTb4b4b4: Te6edf3MetricsViewModelTb4b4b4, Te6edf3onNavigateUpTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3state Tff7b72by Te6edf3viewModelTb4b4b4.Te6edf3stateTb4b4b4.Te6edf3collectAsStateWithLifecycleTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3timeFrame Tff7b72by Te6edf3viewModelTb4b4b4.Te6edf3timeFrameTb4b4b4.Te6edf3collectAsStateWithLifecycleTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3availableTimeFrames Tff7b72by Te6edf3viewModelTb4b4b4.Te6edf3availableTimeFramesTb4b4b4.Te6edf3collectAsStateWithLifecycleTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3data Tff7b72= Te6edf3stateTb4b4b4.Te6edf3powerMetricsTb4b4b4.Te6edf3filter Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3timeTb4b4b4.Te6edf3toLongTb4b4b4(Tb4b4b4) Tff7b72>Tff7b72= Te6edf3timeFrameTb4b4b4.Te6edf3timeThresholdTb4b4b4(Tb4b4b4) Tb4b4b4}
Tff7b72val Te6edf3availableChannels Tff7b72=
Te6edf3rememberTb4b4b4(Te6edf3dataTb4b4b4) Tb4b4b4{
Te6edf3PowerChannelTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3filter Tb4b4b4{ Te6edf3channel Tff7b72-Tff7b72>
Te6edf3dataTb4b4b4.Te6edf3any Tb4b4b4{ Tff7b72!Te6edf3retrieveVoltageTb4b4b4(Te6edf3channelTb4b4b4, Tffa657itTb4b4b4)Tb4b4b4.Te6edf3isNaNTb4b4b4(Tb4b4b4) Tff7b72|Tff7b72| Tff7b72!Te6edf3retrieveCurrentTb4b4b4(Te6edf3channelTb4b4b4, Tffa657itTb4b4b4)Tb4b4b4.Te6edf3isNaNTb4b4b4(Tb4b4b4) Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72var Te6edf3selectedChannel Tff7b72by Te6edf3remember Tb4b4b4{ Te6edf3mutableStateOfTb4b4b4(Te6edf3PowerChannelTb4b4b4.Te6edf3ONETb4b4b4) Tb4b4b4}
Te6edf3BaseMetricScreenTb4b4b4(
Te6edf3onNavigateUp Tff7b72= Te6edf3onNavigateUpTb4b4b4,
Te6edf3telemetryType Tff7b72= Te6edf3TelemetryTypeTb4b4b4.Te6edf3POWERTb4b4b4,
Te6edf3titleRes Tff7b72= Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3power_metrics_logTb4b4b4,
Te6edf3nodeName Tff7b72= Te6edf3stateTb4b4b4.Te6edf3nodeTff7b72?.Te6edf3userTff7b72?.Te6edf3long_name Tff7b72?: Ta5d6ff"Ta5d6ff"Tb4b4b4,
Te6edf3data Tff7b72= Te6edf3dataTb4b4b4,
Te6edf3timeProvider Tff7b72= Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3timeTb4b4b4.Te6edf3toDoubleTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3onRequestTelemetry Tff7b72= Tb4b4b4{ Te6edf3viewModelTb4b4b4.Te6edf3requestTelemetryTb4b4b4(Te6edf3TelemetryTypeTb4b4b4.Te6edf3POWERTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3controlPart Tff7b72= Tb4b4b4{
Te6edf3Column Tb4b4b4{
Te6edf3TimeFrameSelectorTb4b4b4(
Te6edf3selectedTimeFrame Tff7b72= Te6edf3timeFrameTb4b4b4,
Te6edf3availableTimeFrames Tff7b72= Te6edf3availableTimeFramesTb4b4b4,
Te6edf3onTimeFrameSelected Tff7b72= Te6edf3viewModelTff7b72::Te6edf3setTimeFrameTb4b4b4,
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3horizontal Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4)
Te6edf3SpacerTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3heightTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4)
Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3horizontal Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4.Te6edf3horizontalScrollTb4b4b4(Te6edf3rememberScrollStateTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3availableChannelsTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3channel Tff7b72-Tff7b72>
Te6edf3FilterChipTb4b4b4(
Te6edf3selected Tff7b72= Te6edf3selectedChannel Tff7b72=Tff7b72= Te6edf3channelTb4b4b4,
Te6edf3onClick Tff7b72= Tb4b4b4{ Te6edf3selectedChannel Tff7b72= Te6edf3channel Tb4b4b4}Tb4b4b4,
Te6edf3label Tff7b72= Tb4b4b4{ Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3channelTb4b4b4.Te6edf3strResTb4b4b4)Tb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3chartPart Tff7b72= Tb4b4b4{ Te6edf3modifierTb4b4b4, Te6edf3selectedXTb4b4b4, Te6edf3vicoScrollStateTb4b4b4, Te6edf3onPointSelected Tff7b72-Tff7b72>
Te6edf3PowerMetricsChartTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4,
Te6edf3telemetries Tff7b72= Te6edf3dataTb4b4b4.Te6edf3reversedTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3selectedChannel Tff7b72= Te6edf3selectedChannelTb4b4b4,
Te6edf3vicoScrollState Tff7b72= Te6edf3vicoScrollStateTb4b4b4,
Te6edf3selectedX Tff7b72= Te6edf3selectedXTb4b4b4,
Te6edf3onPointSelected Tff7b72= Te6edf3onPointSelectedTb4b4b4,
Tb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3listPart Tff7b72= Tb4b4b4{ Te6edf3modifierTb4b4b4, Te6edf3selectedXTb4b4b4, Te6edf3lazyListStateTb4b4b4, Te6edf3onCardClick Tff7b72-Tff7b72>
Te6edf3LazyColumnTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4.Te6edf3fillMaxSizeTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3state Tff7b72= Te6edf3lazyListStateTb4b4b4) Tb4b4b4{
Te6edf3itemsIndexedTb4b4b4(Te6edf3dataTb4b4b4) Tb4b4b4{ Te6edf3_Tb4b4b4, Te6edf3telemetry Tff7b72-Tff7b72>
Te6edf3PowerMetricsCardTb4b4b4(
Te6edf3telemetry Tff7b72= Te6edf3telemetryTb4b4b4,
Te6edf3isSelected Tff7b72= Te6edf3telemetryTb4b4b4.Te6edf3timeTb4b4b4.Te6edf3toDoubleTb4b4b4(Tb4b4b4) Tff7b72=Tff7b72= Te6edf3selectedXTb4b4b4,
Te6edf3onClick Tff7b72= Tb4b4b4{ Te6edf3onCardClickTb4b4b4(Te6edf3telemetryTb4b4b4.Te6edf3timeTb4b4b4.Te6edf3toDoubleTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4)
Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffPowerMetricsChartTb4b4b4(
Te6edf3modifierTb4b4b4: Te6edf3Modifier Tff7b72= Te6edf3ModifierTb4b4b4,
Te6edf3telemetriesTb4b4b4: Te6edf3ListTff7b72<Te6edf3TelemetryTff7b72>Tb4b4b4,
Te6edf3selectedChannelTb4b4b4: Te6edf3PowerChannelTb4b4b4,
Te6edf3vicoScrollStateTb4b4b4: Te6edf3VicoScrollStateTb4b4b4,
Te6edf3selectedXTb4b4b4: Tffa657Double?Tb4b4b4,
Te6edf3onPointSelectedTb4b4b4: Tb4b4b4(Tffa657DoubleTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3MetricChartScaffoldTb4b4b4(
Te6edf3isEmpty Tff7b72= Te6edf3telemetriesTb4b4b4.Te6edf3isEmptyTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3legendData Tff7b72= Te6edf3LEGEND_DATATb4b4b4,
Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4,
Te6edf3key Tff7b72= Te6edf3selectedChannelTb4b4b4,
Tb4b4b4) Tb4b4b4{ Te6edf3modelProducerTb4b4b4, Te6edf3chartModifier Tff7b72-Tff7b72>
Tff7b72val Te6edf3currentColor Tff7b72= Te6edf3PowerMetricTb4b4b4.Te6edf3CURRENTTb4b4b4.Te6edf3color
Tff7b72val Te6edf3voltageColor Tff7b72= Te6edf3PowerMetricTb4b4b4.Te6edf3VOLTAGETb4b4b4.Te6edf3color
Tff7b72val Te6edf3marker Tff7b72=
Te6edf3ChartStylingTb4b4b4.Te6edf3rememberMarkerTb4b4b4(
Te6edf3valueFormatter Tff7b72=
Te6edf3ChartStylingTb4b4b4.Te6edf3createColoredMarkerValueFormatter Tb4b4b4{ Te6edf3valueTb4b4b4, Te6edf3color Tff7b72-Tff7b72>
Tff7b72when Tb4b4b4(Te6edf3colorTb4b4b4) Tb4b4b4{
Te6edf3currentColor Tff7b72-Tff7b72> Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ffCurrent: %.0f mATa5d6ff"Tb4b4b4, Te6edf3valueTb4b4b4)
Te6edf3voltageColor Tff7b72-Tff7b72> Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ffVoltage: %.1f VTa5d6ff"Tb4b4b4, Te6edf3valueTb4b4b4)
Tff7b72else Tff7b72-Tff7b72> Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ff%.1fTa5d6ff"Tb4b4b4, Te6edf3valueTb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3currentData Tff7b72=
Te6edf3rememberTb4b4b4(Te6edf3telemetriesTb4b4b4, Te6edf3selectedChannelTb4b4b4) Tb4b4b4{
Te6edf3telemetriesTb4b4b4.Te6edf3filter Tb4b4b4{ Tff7b72!Te6edf3retrieveCurrentTb4b4b4(Te6edf3selectedChannelTb4b4b4, Tffa657itTb4b4b4)Tb4b4b4.Te6edf3isNaNTb4b4b4(Tb4b4b4) Tb4b4b4}
Tb4b4b4}
Tff7b72val Te6edf3voltageData Tff7b72=
Te6edf3rememberTb4b4b4(Te6edf3telemetriesTb4b4b4, Te6edf3selectedChannelTb4b4b4) Tb4b4b4{
Te6edf3telemetriesTb4b4b4.Te6edf3filter Tb4b4b4{ Tff7b72!Te6edf3retrieveVoltageTb4b4b4(Te6edf3selectedChannelTb4b4b4, Tffa657itTb4b4b4)Tb4b4b4.Te6edf3isNaNTb4b4b4(Tb4b4b4) Tb4b4b4}
Tb4b4b4}
Te6edf3LaunchedEffectTb4b4b4(Te6edf3selectedChannelTb4b4b4, Te6edf3currentDataTb4b4b4, Te6edf3voltageDataTb4b4b4) Tb4b4b4{
Te6edf3modelProducerTb4b4b4.Te6edf3runTransaction Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3currentDataTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3lineSeries Tb4b4b4{
Te6edf3seriesTb4b4b4(
Te6edf3x Tff7b72= Te6edf3currentDataTb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3time Tb4b4b4}Tb4b4b4,
Te6edf3y Tff7b72= Te6edf3currentDataTb4b4b4.Te6edf3map Tb4b4b4{ Te6edf3retrieveCurrentTb4b4b4(Te6edf3selectedChannelTb4b4b4, Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3voltageDataTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3lineSeries Tb4b4b4{
Te6edf3seriesTb4b4b4(
Te6edf3x Tff7b72= Te6edf3voltageDataTb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3time Tb4b4b4}Tb4b4b4,
Te6edf3y Tff7b72= Te6edf3voltageDataTb4b4b4.Te6edf3map Tb4b4b4{ Te6edf3retrieveVoltageTb4b4b4(Te6edf3selectedChannelTb4b4b4, Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72val Te6edf3currentLayer Tff7b72=
Te6edf3rememberConditionalLayerTb4b4b4(
Te6edf3hasData Tff7b72= Te6edf3currentDataTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3lineProvider Tff7b72= Te6edf3LineCartesianLayerTb4b4b4.Te6edf3LineProviderTb4b4b4.Te6edf3seriesTb4b4b4(Te6edf3ChartStylingTb4b4b4.Te6edf3createBoldLineTb4b4b4(Te6edf3currentColorTb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3verticalAxisPosition Tff7b72= Te6edf3AxisTb4b4b4.Te6edf3PositionTb4b4b4.Te6edf3VerticalTb4b4b4.Te6edf3StartTb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3voltageLayer Tff7b72=
Te6edf3rememberConditionalLayerTb4b4b4(
Te6edf3hasData Tff7b72= Te6edf3voltageDataTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3lineProvider Tff7b72= Te6edf3LineCartesianLayerTb4b4b4.Te6edf3LineProviderTb4b4b4.Te6edf3seriesTb4b4b4(Te6edf3ChartStylingTb4b4b4.Te6edf3createGradientLineTb4b4b4(Te6edf3voltageColorTb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3verticalAxisPosition Tff7b72= Te6edf3AxisTb4b4b4.Te6edf3PositionTb4b4b4.Te6edf3VerticalTb4b4b4.Te6edf3EndTb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3layers Tff7b72= Te6edf3rememberTb4b4b4(Te6edf3currentLayerTb4b4b4, Te6edf3voltageLayerTb4b4b4) Tb4b4b4{ Te6edf3listOfNotNullTb4b4b4(Te6edf3currentLayerTb4b4b4, Te6edf3voltageLayerTb4b4b4) Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3layersTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3GenericMetricChartTb4b4b4(
Te6edf3modelProducer Tff7b72= Te6edf3modelProducerTb4b4b4,
Te6edf3modifier Tff7b72= Te6edf3chartModifierTb4b4b4,
Te6edf3layers Tff7b72= Te6edf3layersTb4b4b4,
Te6edf3startAxis Tff7b72=
Tff7b72if Tb4b4b4(Te6edf3currentDataTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3VerticalAxisTb4b4b4.Te6edf3rememberStartTb4b4b4(
Te6edf3label Tff7b72= Te6edf3ChartStylingTb4b4b4.Te6edf3rememberAxisLabelTb4b4b4(Te6edf3color Tff7b72= Te6edf3currentColorTb4b4b4)Tb4b4b4,
Te6edf3valueFormatter Tff7b72= Tb4b4b4{ Te6edf3_Tb4b4b4, Te6edf3valueTb4b4b4, Te6edf3_ Tff7b72-Tff7b72> Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ff%.0f mATa5d6ff"Tb4b4b4, Te6edf3valueTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72null
Tb4b4b4}Tb4b4b4,
Te6edf3endAxis Tff7b72=
Tff7b72if Tb4b4b4(Te6edf3voltageDataTb4b4b4.Te6edf3isNotEmptyTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3VerticalAxisTb4b4b4.Te6edf3rememberEndTb4b4b4(
Te6edf3label Tff7b72= Te6edf3ChartStylingTb4b4b4.Te6edf3rememberAxisLabelTb4b4b4(Te6edf3color Tff7b72= Te6edf3voltageColorTb4b4b4)Tb4b4b4,
Te6edf3valueFormatter Tff7b72= Tb4b4b4{ Te6edf3_Tb4b4b4, Te6edf3valueTb4b4b4, Te6edf3_ Tff7b72-Tff7b72> Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ff%.1f VTa5d6ff"Tb4b4b4, Te6edf3valueTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72null
Tb4b4b4}Tb4b4b4,
Te6edf3bottomAxis Tff7b72= Te6edf3CommonChartsTb4b4b4.Te6edf3rememberBottomTimeAxisTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3marker Tff7b72= Te6edf3markerTb4b4b4,
Te6edf3selectedX Tff7b72= Te6edf3selectedXTb4b4b4,
Te6edf3onPointSelected Tff7b72= Te6edf3onPointSelectedTb4b4b4,
Te6edf3vicoScrollState Tff7b72= Te6edf3vicoScrollStateTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@Composable
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffCyclomaticComplexMethodTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4)
Tff7b72private Tff7b72fun Td2a8ffPowerMetricsCardTb4b4b4(Te6edf3telemetryTb4b4b4: Te6edf3TelemetryTb4b4b4, Te6edf3isSelectedTb4b4b4: Tffa657BooleanTb4b4b4, Te6edf3onClickTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3time Tff7b72= Te6edf3telemetryTb4b4b4.Te6edf3timeTb4b4b4.Te6edf3toLongTb4b4b4(Tb4b4b4) Tff7b72* Te6edf3MS_PER_SEC
Te6edf3SelectableMetricCardTb4b4b4(Te6edf3isSelected Tff7b72= Te6edf3isSelectedTb4b4b4, Te6edf3onClick Tff7b72= Te6edf3onClickTb4b4b4) Tb4b4b4{
Te6edf3RowTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ColumnTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(T79c0ff1T79c0ff2.Te6edf3dpTb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e/* Time */
Te6edf3Row Tb4b4b4{
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3DateFormatterTb4b4b4.Te6edf3formatDateTimeTb4b4b4(Te6edf3timeTb4b4b4)Tb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3titleMediumEmphasizedTb4b4b4,
Te6edf3fontWeight Tff7b72= Te6edf3FontWeightTb4b4b4.Te6edf3BoldTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Te6edf3SpacerTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3heightTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4)
Tff7b72val Te6edf3pm Tff7b72= Te6edf3telemetryTb4b4b4.Te6edf3power_metrics
Tff7b72if Tb4b4b4(Te6edf3pm Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3PowerChannelsRow1Tb4b4b4(Te6edf3pmTb4b4b4)
Te6edf3PowerChannelsExtraRowsTb4b4b4(Te6edf3pmTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffPowerChannelsRow1Tb4b4b4(Te6edf3pmTb4b4b4: Te6edf3orgTb4b4b4.Te6edf3meshtasticTb4b4b4.Te6edf3protoTb4b4b4.Te6edf3PowerMetricsTb4b4b4) Tb4b4b4{
Te6edf3RowTb4b4b4(Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3SpaceBetweenTb4b4b4, Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch1_current Tff7b72!Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3pmTb4b4b4.Te6edf3ch1_voltage Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_1Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch1_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch1_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch2_current Tff7b72!Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3pmTb4b4b4.Te6edf3ch2_voltage Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_2Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch2_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch2_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch3_current Tff7b72!Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3pmTb4b4b4.Te6edf3ch3_voltage Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_3Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch3_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch3_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@Composable
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffCyclomaticComplexMethodTa5d6ff"Tb4b4b4)
Tff7b72private Tff7b72fun Td2a8ffPowerChannelsExtraRowsTb4b4b4(Te6edf3pmTb4b4b4: Te6edf3orgTb4b4b4.Te6edf3meshtasticTb4b4b4.Te6edf3protoTb4b4b4.Te6edf3PowerMetricsTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3hasCh456 Tff7b72=
Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch4_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch4_currentTb4b4b4) Tff7b72|Tff7b72|
Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch5_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch5_currentTb4b4b4) Tff7b72|Tff7b72|
Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch6_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch6_currentTb4b4b4)
Tff7b72val Te6edf3hasCh78 Tff7b72= Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch7_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch7_currentTb4b4b4) Tff7b72|Tff7b72| Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch8_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch8_currentTb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3hasCh456Tb4b4b4) Tb4b4b4{
Te6edf3SpacerTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3heightTb4b4b4(T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4)
Te6edf3RowTb4b4b4(Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3SpaceBetweenTb4b4b4, Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch4_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch4_currentTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_4Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch4_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch4_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch5_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch5_currentTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_5Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch5_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch5_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch6_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch6_currentTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_6Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch6_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch6_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3hasCh78Tb4b4b4) Tb4b4b4{
Te6edf3SpacerTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3heightTb4b4b4(T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4)
Te6edf3RowTb4b4b4(Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3SpaceBetweenTb4b4b4, Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch7_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch7_currentTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_7Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch7_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch7_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3hasChannelDataTb4b4b4(Te6edf3pmTb4b4b4.Te6edf3ch8_voltageTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch8_currentTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3PowerChannelColumnTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channel_8Tb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch8_voltage Tff7b72?: T79c0ff0fTb4b4b4, Te6edf3pmTb4b4b4.Te6edf3ch8_current Tff7b72?: T79c0ff0fTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffhasChannelDataTb4b4b4(Te6edf3voltageTb4b4b4: Tffa657Float?Tb4b4b4, Te6edf3currentTb4b4b4: Tffa657Float?Tb4b4b4)Tb4b4b4: Tffa657Boolean Tff7b72= Te6edf3voltage Tff7b72!Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3current Tff7b72!Tff7b72= Tff7b72null
Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffPowerChannelColumnTb4b4b4(Te6edf3titleResTb4b4b4: Te6edf3StringResourceTb4b4b4, Te6edf3voltageTb4b4b4: Tffa657FloatTb4b4b4, Te6edf3currentTb4b4b4: Tffa657FloatTb4b4b4) Tb4b4b4{
Te6edf3Column Tb4b4b4{
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3titleResTb4b4b4)Tb4b4b4,
Te6edf3style Tff7b72= Te6edf3TextStyleTb4b4b4(Te6edf3fontWeight Tff7b72= Te6edf3FontWeightTb4b4b4.Te6edf3BoldTb4b4b4)Tb4b4b4,
Te6edf3fontSize Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelLargeTb4b4b4.Te6edf3fontSizeTb4b4b4,
Tb4b4b4)
Te6edf3MetricValueRowTb4b4b4(Te6edf3color Tff7b72= Te6edf3PowerMetricTb4b4b4.Te6edf3VOLTAGETb4b4b4.Te6edf3colorTb4b4b4, Te6edf3text Tff7b72= Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ff%.2fVTa5d6ff"Tb4b4b4, Te6edf3voltageTb4b4b4)Tb4b4b4)
Te6edf3MetricValueRowTb4b4b4(Te6edf3color Tff7b72= Te6edf3PowerMetricTb4b4b4.Te6edf3CURRENTTb4b4b4.Te6edf3colorTb4b4b4, Te6edf3text Tff7b72= Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ff%.1fmATa5d6ff"Tb4b4b4, Te6edf3currentTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
T8b949e/** Retrieves the appropriate voltage depending on `channelSelected`. */
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffCyclomaticComplexMethodTa5d6ff"Tb4b4b4)
Tff7b72private Tff7b72fun Td2a8ffretrieveVoltageTb4b4b4(Te6edf3channelSelectedTb4b4b4: Te6edf3PowerChannelTb4b4b4, Te6edf3telemetryTb4b4b4: Te6edf3TelemetryTb4b4b4)Tb4b4b4: Tffa657Float Tff7b72= Tff7b72when Tb4b4b4(Te6edf3channelSelectedTb4b4b4) Tb4b4b4{
Te6edf3PowerChannelTb4b4b4.Te6edf3ONE Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch1_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3TWO Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch2_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3THREE Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch3_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3FOUR Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch4_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3FIVE Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch5_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3SIX Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch6_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3SEVEN Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch7_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3EIGHT Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch8_voltage Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Tb4b4b4}
T8b949e/** Retrieves the appropriate current depending on `channelSelected`. */
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffCyclomaticComplexMethodTa5d6ff"Tb4b4b4)
Tff7b72private Tff7b72fun Td2a8ffretrieveCurrentTb4b4b4(Te6edf3channelSelectedTb4b4b4: Te6edf3PowerChannelTb4b4b4, Te6edf3telemetryTb4b4b4: Te6edf3TelemetryTb4b4b4)Tb4b4b4: Tffa657Float Tff7b72= Tff7b72when Tb4b4b4(Te6edf3channelSelectedTb4b4b4) Tb4b4b4{
Te6edf3PowerChannelTb4b4b4.Te6edf3ONE Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch1_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3TWO Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch2_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3THREE Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch3_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3FOUR Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch4_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3FIVE Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch5_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3SIX Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch6_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3SEVEN Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch7_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Te6edf3PowerChannelTb4b4b4.Te6edf3EIGHT Tff7b72-Tff7b72> Te6edf3telemetryTb4b4b4.Te6edf3power_metricsTff7b72?.Te6edf3ch8_current Tff7b72?: Tffa657FloatTb4b4b4.Te6edf3NaN
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.13s